var User = require("./user1.js");

        /*-------------增-----------------*/
                /*插入一条数据*/

//json是插入的数据
//回调中的第二参数是显示的已经插入成功的数据
exports.insertOne=function(json,callback) {
 
    var user = new User(json);

    user.save(function (err, result) {
        callback(err,result)
    });
}

exports.pushInsert=function(json,insert,callback){
    
    User.update(json, {"$push":insert},function(err,result){
        callback(err,result)
    })

}



        /*--------------删-----------------*/


                /*删除查询到的所有数据*/

//olddata是查询条件
//回调中的第二参数是删除成功的一些状态码
exports.removeAll=function(olddata,callback){
    User.remove(olddata, function(err, result){
        callback(err,result)
    })
}


                /*删除查询到的第一条数据*/
//olddata是查询条件
//回调中的第二参数是删除成功的第一条数据              
exports.removeOne=function(olddata,callback){
    User.findOneAndRemove(olddata, function(err, result){
        callback(err,result)
    })
}


        /*-------------改----------------*/

                 /*更新一条数据*/

//olddata是查询条件，就意味着是要被更新的数据
//newdata是新的数据，更新完了的数据
//callback的第二参数是显示更新完成的一些状态码
//注意：此方法虽然如果查询到了很多可以被更新的数据，但是只更新查询到的第一条数据
exports.upDateOne=function(olddata,newdata,callback){
    User.update(olddata, newdata, function(err, result){
       callback(err,result)
    })
}

    
                /*更新查询到的所有数据*/

//olddata是查询条件，就意味着是要被更新的数据
//newdata是新的数据，更新完了的数据
//callback的第二参数是显示更新完成的一些状态码
exports.upDateAll=function(olddata,newdata,callback){
    User.updateMany(olddata,newdata,function(err,result){
        callback(err,result)
    })
}


        /*---------------查---------------*/

                /*找到满足查询条件的数据*/

//olddata是查询条件
//回调的第二个参数是返回满足条件的所有的JSON来组成一个数组，就是返回一个数组
exports.findAll=function(olddata,callback){
    User.find(olddata, function(err, result){
        callback(err,result)
    })
}


                /*找到满足条件的第一条数据*/

//第一个参数是查询条件
//回调第二参数是返回查询到的第一条数据
exports.findOne=function(olddata,callback){
    User.findOne(olddata,function(err,result){
        callback(err,result)
    })
}
        
                /*数量查询*/

//第一个参数是查询条件，如果为{ }这种，那么肯定是返回这个集合下的所有的JSON的数量
//回调中的第二个参数是返回数量
exports.count=function(olddata,callback){
    User.count(olddata, function(err, result){
       callback(err,result)
    })
}



                /*分页取数据*/

// olddata 查询条件，可以是{ }
// pageSize 要输出的页码的条数（要输出的JSON数量）
// nowduoshaoye  要过滤掉的页码（意味着过滤掉JSON的条数）
// sort  输出的排序方式，可以{ }
//回调中的第二参数是输出的JSON
exports.pageData=function getByPager(olddata,sort,pageSize,nowduoshaoye,callback){
    var skipnum = (nowduoshaoye - 1) * pageSize;   //跳过数
    //如果要显示第二页的数据，每页数据是2条，那么将会过滤掉2条数据
    User.find(olddata).sort(sort).skip(skipnum).limit(pageSize).exec(function (err, result) {
        callback(err,result)
    })
}